package model;
import java.util.*;
/**
 * Class Loan - En klasse som repræsenterer et lån med en DVD type
 * 
 * Klassen er en del af programmet DVD lending
 * DVD lending er et udlånssystem, som er textbaseseret UI.
 * 
 * Klassen laver låne objekter, som vores LoanCon kan indeholde.
 * 
 * @author Ole, Silas, Danny, Alex, Anders, Ronni
 * 
 */
public class Loan
{
    // instance variables
    private String id;
    private String borrowDate;
    private String period;
    private String state;
    private Person myPerson;
    private Copy myCopy;

    /**
     * Constructor for objects of class Loan
     * @param id Setter id for et nyopretter lån
     * borrowDate Setter borrowDate for et nyoprettet lån
     * period Setter period for et nyoprettet lån
     * state Setter state for en nyoprettet lån
     */
    public Loan(String id, String borrowDate, String period, String state, Person myPerson, Copy myCopy)
    {
        // initialise instance variables
        this.id = id;
        this.borrowDate = borrowDate;
        this.period = period;
        this.state = state;
        this.myPerson = myPerson;
        this.myCopy = myCopy;
    }

    /**
     * Herunder skrives get- og set-metoder, hvor der gives mulighed for at ændre i lånet, hvis man skulle have brug for det.
     * @param id Setter id for et nyopretter lån
     */
    public void setID(String id)
    {
        this.id = id;
    }

    /**
     * @return Returnerer id for et lån
     */
    public String getID()
    {
        return id;
    }

    /**
     * @param borrowDate Setter borrowDate for et nyoprettet lån
     */
    public  void setBorrowDate(String borrowDate)
    {
        this.borrowDate = borrowDate;
    }

    /**
     * @return Returnerer borrowDate for et lån
     */
    public String getBorrowDate()
    {
        return borrowDate;
    }

    /**
     * @param period Setter period for et nyoprettet lån
     */
    public  void setPeriod(String period)
    {
        this.period = period;
    }

    /**
     * @return Returnerer period for et lån
     */
    public String getPeriod()
    {
        return period;
    }

    /**
     * @param state Setter state for en nyoprettet lån
     */
    public  void setState(String state)
    {
        this.state = state;
    }

    /**
     * @return Returnerer state for et lån
     */
    public String getState()
    {
        return state;
    }
   
    /**
     * @return Returnerer copy for et lån
     */
    public Copy getCopy()
    {
        return myCopy;
    }
    
    /**
     * Printer information om lånet
     */
    public void getInfo()
    {
        System.out.println("Id : " + id);
        System.out.println("Dato for lån : " + borrowDate);
        System.out.println("Periode : " + period);
        System.out.println("State : " + state);
        System.out.println("Låner: ");
        myPerson.getInfo();
        System.out.println("Kopi : ");
        myCopy.getInfo();
    }
}
